///this class helps finding issues between Irrlicht and Bullet representation: problem with transform, scaling, collision shapes and constraint setup.
class IrrPhysDebugDrawer : public btIDebugDraw
{
	irr::video::IVideoDriver *	m_poDriver;
	int							m_bPhysDebugMode;

public:
	//=== constructor ==//
	IrrPhysDebugDrawer( irr::video::IVideoDriver *	poDriver );

	//! override of btIDebugDraw abstract function
	virtual void	setDebugMode( int bDebugMode )								{ m_bPhysDebugMode = bDebugMode;}
	//! override of btIDebugDraw abstract function
	virtual int		getDebugMode( void ) const									{ return m_bPhysDebugMode; }
	///most important debug drawing method, drawing lines
	virtual void	drawLine( const btVector3& from, const btVector3& to, const btVector3& color );

	///optional debug methods
	virtual void	drawContactPoint( const btVector3& PointOnB, const btVector3& normalOnB,btScalar distance, int lifeTime, const btVector3& color ) {}
	virtual void	reportErrorWarning( const char* warningString )					{}
	virtual void	draw3dText( const btVector3& location, const char* textString )	{}
};
